Godot3.5でCamera shake
code:camera2d.gd
extends Camera2D
# 揺れ時間
var time = 0
func shake():
# 残り時間の幅でランダムに揺らす
# 画面比率 (1024:60) 固定
offset.x = 32 * rand_range(-1, 1) * time
offset.y = 18.75 * rand_range(-1, 1) * time
func _ready():
# カメラを画面の中心に移動 (解像度を 1024 x 600とした場合)
position.x = 1024 / 2
position.y = 600 / 2
func _process(delta):
if time > 0:
# 揺れ時間が残っていれば揺らす
time = max(0, time - delta)
shake()
if Input.is_action_just_pressed("ui_accept"):
# Spaceキーで揺れ開始
time = 1 # 1秒
ノイズテクスチャを使ったバージョンのほうがいいのでそっちもメモる